import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

//效验
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1.先从请求中拿到用户名和密码
        //为保证读取出来的参数也能支持中文，设置编码方式是utf8
        req.setCharacterEncoding("utf8");
        String username=req.getParameter("username");
        String password=req.getParameter("password");
        //2.验证用户名密码是否正确
        if (username==null||password==null||username.equals("")|| password.equals("")){
            resp.setContentType("text/html;charset=utf8");
            resp.getWriter().write("当前输入用户名或密码为空！！！");
            return;
        }
        if(!username.equals("zhangsan")&&!username.equals("lisi")){
            resp.setContentType("text/html;charset=utf8");
            resp.getWriter().write("用户名有误");
            return;
        }
        if (!password.equals("123")){
            resp.setContentType("text/html;charset=utf8");
            resp.getWriter().write("密码错误");
            return;
        }
        //3.创建会话
        //用户处于未登录状态，此时请求的cookie中没有sessionId
        //此处的getSession是无法从服务器的哈希表中找到该session对象的
        //由于此处会把参数设为true，所以允许getSession在查询不到时创建新的session对象和seddionId，并且会自动把这个sessionId和session对象存储到哈希表中
        //同时返回这个session对象，并且接下来的响应中会自动把这个sessionId返回给客户端浏览器
        HttpSession session=req.getSession(true);
        //接下来可以让刚刚创建好的session对象存储自定义的数据，就可以在这个对象中存储用户的身份信息
        session.setAttribute("username",username);
        //4.登录成功之后，自动跳转主页
        resp.sendRedirect("index");
    }
}
